home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / apidev / tpapi.exe / NWVAR.PA1 < prev    next >
Text File  |  1994-01-14  |  79KB  |  1,792 lines

  1. {#Z+}
  2. (*(10U&l12D(s4099T&k2S*)
  3. {***************************************************************************}
  4. {** Program : NWVAR                                                       **}
  5. {***************************************************************************}
  6. {** Version : 1.2             ** Started : 11/11/91  ** Ended :   /  /    **}
  7. {***************************************************************************}
  8. {******************************** Description ******************************}
  9. {***************************************************************************}
  10. {** Variable / constant definition for Netware API library                **}
  11. {**                                                                       **}
  12. {**                                                                       **}
  13. {**                                                                       **}
  14. {**                                                                       **}
  15. {***************************************************************************}
  16. {******************************** Information ******************************}
  17. {***************************************************************************}
  18. {**                                                                       **}
  19. {**                                                                       **}
  20. {** This code is (c) 1991 - 1994 Antonio Covelli. ALL RIGHTS RESERVED.    **}
  21. {** Portions copyright Novell Inc,                                        **}
  22. {**                                                                       **}
  23. {**                                                                       **}
  24. {**                                                                       **}
  25. {***************************************************************************}
  26.  
  27. {$I NETWARE.INC}
  28.  
  29. UNIT NWVAR;
  30.  
  31. INTERFACE
  32.  
  33. uses
  34.  
  35.   nwDPMI;
  36.  
  37.  
  38. type
  39.  
  40.   {*** MISC TYPES NEEDED BY TPAPI ***}
  41.  
  42.   TByte2Array          = ARRAY [0 .. 1] OF BYTE;
  43.   TByte3Array          = ARRAY [0 .. 2] OF BYTE;
  44.   PByte4Array          = ^Tbyte4Array;
  45.   TByte4Array          = ARRAY [0 .. 3] OF BYTE;
  46.   TByte5Array          = ARRAY [0 .. 4] OF BYTE;
  47.   TByte6Array          = ARRAY [0 .. 5] OF BYTE;
  48.   TByte7Array          = ARRAY [0 .. 6] OF BYTE;
  49.   PByte8Array          = ^Tbyte8Array;
  50.   TByte8Array          = ARRAY [0 .. 7] OF BYTE;
  51.   TByte9Array          = ARRAY [0 .. 8] OF BYTE;
  52.   TByte10Array         = ARRAY [0 .. 9] OF BYTE;
  53.   TByte12Array         = ARRAY [0 .. 11] OF BYTE;
  54.   TByte13Array         = ARRAY [0 .. 12] OF BYTE;
  55.   TByte14Array         = ARRAY [0 .. 13] OF BYTE;
  56.   PByte16Array         = ^Tbyte16Array;
  57.   TByte16Array         = ARRAY [0 .. 15] OF BYTE;
  58.   TByte17Array         = ARRAY [0 .. 16] OF BYTE;
  59.   TByte18Array         = ARRAY [0 .. 17] OF BYTE;
  60.   TByte20Array         = ARRAY [0 .. 19] OF BYTE;
  61.   TByte21Array         = ARRAY [0 .. 20] OF BYTE;
  62.   TByte22Array         = ARRAY [0 .. 21] OF BYTE;
  63.   TByte24Array         = ARRAY [0 .. 23] OF BYTE;
  64.   TByte26Array         = ARRAY [0 .. 25] OF BYTE;
  65.   TByte28Array         = ARRAY [0 .. 27] OF BYTE;
  66.   TByte30Array         = ARRAY [0 .. 29] OF BYTE;
  67.   PByte32Array         = ^TByte32Array;
  68.   TByte32Array         = ARRAY [0 .. 31] OF BYTE;
  69.   TByte38Array         = ARRAY [0 .. 37] OF BYTE;
  70.   TByte42Array         = ARRAY [0 .. 41] OF BYTE;
  71.   TByte44Array         = ARRAY [0 .. 43] OF BYTE;
  72.   PByte45Array         = ^TByte45Array;
  73.   TByte45Array         = ARRAY [0 .. 44] OF BYTE;
  74.   TByte46Array         = ARRAY [0 .. 45] OF BYTE;
  75.   TByte47Array         = ARRAY [0 .. 46] OF BYTE;
  76.   TByte48Array         = ARRAY [0 .. 47] OF BYTE;
  77.   TByte50Array         = ARRAY [0 .. 49] OF BYTE;
  78.   TByte51Array         = ARRAY [0 .. 50] OF BYTE;
  79.   TByte54Array         = ARRAY [0 .. 53] OF BYTE;
  80.   TByte56Array         = ARRAY [0 .. 55] OF BYTE;
  81.   TByte58Array         = ARRAY [0 .. 57] OF BYTE;
  82.   TByte59Array         = ARRAY [0 .. 58] OF BYTE;
  83.   TByte60Array         = ARRAY [0 .. 59] OF BYTE;
  84.   TByte63Array         = ARRAY [0 .. 62] OF BYTE;
  85.   TByte64Array         = ARRAY [0 .. 63] OF BYTE;
  86.   TByte65Array         = ARRAY [0 .. 64] OF BYTE;
  87.   TByte69Array         = ARRAY [0 .. 68] OF BYTE;
  88.   TByte80Array         = ARRAY [0 .. 79] OF BYTE;
  89.   TByte96Array         = ARRAY [0 .. 95] OF BYTE;
  90.   TByte103Array        = ARRAY [0 .. 102] OF BYTE;
  91.   PByte128Array        = ^TByte128Array;
  92.   TByte128Array        = ARRAY [0 .. 127] OF BYTE;
  93.   TByte130Array        = ARRAY [0 .. 129] OF BYTE;
  94.   TByte132Array        = ARRAY [0 .. 131] OF BYTE;
  95.   TByte134Array        = ARRAY [0 .. 133] OF BYTE;
  96.   TByte142Array        = ARRAY [0 .. 141] OF BYTE;
  97.   TByte152Array        = ARRAY [0 .. 151] OF BYTE;
  98.   TByte250Array        = array [0 .. 249] of byte;
  99.   TByte253Array        = ARRAY [0 .. 252] OF BYTE;
  100.   PByte255Array        = ^TByte255Array;
  101.   TByte255Array        = ARRAY [0 .. 254] OF BYTE;
  102.   TByte258Array        = ARRAY [0 .. 257] OF BYTE;
  103.   TByte265Array        = ARRAY [0 .. 264] OF BYTE;
  104.   TByte504Array        = ARRAY [0 .. 503] OF BYTE;
  105.   TByte514Array        = ARRAY [0 .. 513] OF BYTE;
  106.  
  107.   TChar13Array         = ARRAY [0 .. 12] OF CHAR;
  108.   TChar14Array         = ARRAY [0 .. 13] OF CHAR;
  109.   TChar50Array         = ARRAY [0 .. 49] OF CHAR;
  110.   TChar80Array         = ARRAY [0 .. 79] OF CHAR;
  111.  
  112.   TWord20Array         = ARRAY [0 .. 19] OF WORD;
  113.   TWord25Array         = ARRAY [0 .. 24] OF WORD;
  114.   TWord60Array         = ARRAY [0 .. 59] OF WORD;
  115.   TWord250Array        = ARRAY [0 .. 249] OF WORD;
  116.  
  117.   TLongint2Array       = ARRAY [0 .. 1] OF LONGINT;
  118.   TLongint4Array       = ARRAY [0 .. 3] OF LONGINT;
  119.   TLongint5Array       = ARRAY [0 .. 4] OF LONGINT;
  120.   TLongint10Array      = ARRAY [0 .. 9] OF LONGINT;
  121.   TLongint16Array      = ARRAY [0 .. 15] OF LONGINT;
  122.   TLongint20Array      = ARRAY [0 .. 19] OF LONGINT;
  123.   TLongint25Array      = ARRAY [0 .. 24] OF LONGINT;
  124.   TLongint32Array      = ARRAY [0 .. 31] OF LONGINT;
  125.   TLongint125Array     = ARRAY [0 .. 124] OF LONGINT;
  126.  
  127.   TString1             = STRING [1];
  128.   TString4             = STRING [4];
  129.   TString8             = STRING [8];
  130.   TString10            = STRING [10];
  131.   TString12            = STRING [12];
  132.   TString13            = STRING [13];
  133.   TString14            = STRING [14];
  134.   TString15            = string [15];
  135.   TString16            = STRING [16];
  136.   TString20            = string [20];
  137.   TString24            = STRING [24];
  138.   TString29            = STRING [29];
  139.   TString33            = STRING [33];
  140.   TString36            = STRING [36];
  141.   TString40            = STRING [40];
  142.   TString45            = STRING [45];
  143.   TString47            = STRING [47];
  144.   TString48            = STRING [48];
  145.   TString50            = STRING [50];
  146.   TString55            = string [55];
  147.   TString58            = string [58];
  148.   TString59            = string [59];
  149.   TString60            = string [60];
  150.   TString61            = string [61];
  151.   TString64            = STRING [64];
  152.   TString65            = STRING [65];
  153.   TString70            = STRING [70];
  154.   TString80            = STRING [80];
  155.   TString100           = string [100];
  156.   TString102           = STRING [102];
  157.   TString118           = string [118];
  158.   TString127           = STRING [127];
  159.   TString128           = STRING [128];
  160.   TString255           = STRING [255];
  161.  
  162.   TFileName            = TString14;
  163.   TObjectName          = TString48;
  164.   TFullName            = TString128;
  165.   TPassword            = TString128;
  166.   TQueuePathName       = TString118;
  167.   TPathName            = TString255;
  168.   TPropertyName        = TString15;
  169.   TLogicalRecordName   = TString100;
  170.   TLogicalLockName     = TString102;
  171.   TSemaphoreName       = TString127;
  172.   TBannerUserName      = TChar13Array;
  173.   TFormName            = TChar13Array;
  174.   TConsoleMessage      = TString58;
  175.   TBroadcastMessage    = TString55;
  176.   TPersonalMessage     = TString127;
  177.   TVolumeName          = TString16;
  178.   TDirectoryName       = TString16;
  179.   TPropertyValue       = TByte128Array;
  180.   TEncryptKey          = TByte8Array;
  181.   TNameSpaceName       = TString12;
  182.  
  183.   TConnectionList      = ARRAY [1 .. 250] OF BYTE;
  184.   TConnectionList1     = array [1 .. 250] of word;
  185.   TConnectionListLong  = array [1 .. 128] of longint;
  186.  
  187.   TBinderyID           = longint;
  188.   TBinderyType         = word;
  189.  
  190.   OT_BinderyID         = LONGINT;
  191.   OT_BinderyType       = WORD;
  192.  
  193.   pByte                = ^byte;
  194.   TByte                = byte;
  195.   pWord                = ^word;
  196.   TWord                = word;
  197.   pLongint             = ^longint;
  198.   TLongint             = longint;
  199.   {$IFNDEF WINDOWS}
  200.   pChar                = ^char;
  201.   {$ENDIF}
  202.   TChar                = char;
  203.  
  204. const
  205.  
  206.   MaxFragsInList = 1;
  207.  
  208. type
  209.  
  210.   TFragment = record
  211.  
  212.                 RequestBufferAddr : pointer;
  213.                 RequestBufferSize : word;
  214.                 ReceiveBufferAddr : pointer;
  215.                 ReceiveBufferSize : word;
  216.  
  217.              end;
  218.  
  219.   TFragmentList = array [1 .. MaxFragsInList] of TFragment;
  220.  
  221. const
  222.  
  223.   {****************}
  224.   {*** VLM ID's ***}
  225.   {****************}
  226.  
  227.   CallerID                   : word = $0000;
  228.   VLMManager                 : word = $0001;
  229.   ConnectionTableManager     : word = $0010;
  230.   TransportMultiplexor       : word = $0020;
  231.   IPXTransport               : word = $0021;
  232.   TCPIPTransport             : word = $0022;
  233.   NetwareProtocolMultiplexor : word = $0030;
  234.   BinderyServices            : word = $0031;
  235.   DirectoryServices          : word = $0032;
  236.   PersonalNetware            : word = $0033;
  237.   RSA                        : word = $0034;
  238.   Redirection                : word = $0040;
  239.   FileIO                     : word = $0041;
  240.   PrintServices              : word = $0042;
  241.   General                    : word = $0043;
  242.   Netx                       : word = $0050;
  243.   Auto                       : word = $0060;
  244.   Security                   : word = $0061;
  245.   NetworkMgmtResponder       : word = $0100;
  246.  
  247.   {*********************************}
  248.   {*** VLM DESTINATION FUNCTIONS ***}
  249.   {*********************************}
  250.  
  251.   CONN_NLUN                  : word = $000D;
  252.   GENR_GSPR                  : word = $0004;
  253.   GENR_SPEC                  : word = $0006;
  254.  
  255.   {************************}
  256.   {*** VLM SUBFUNCTIONS ***}
  257.   {************************}
  258.  
  259.   GET_DEF_PRIM               = $0001;
  260.   GET_PRIMARY                = $0001;
  261.   SET_PRIMARY                = $0002;
  262.   GEN_LAST_Q                 = $0002;
  263.   VLM_ID_CONN                = $0010;
  264.  
  265.  
  266.   {************************************************}
  267.   {*** Connection Entry Information (CEI) Table ***}
  268.   {************************************************}
  269.  
  270.   CEI_Error                  = $0000;
  271.   CEI_Net_Type               = $0001;
  272.   CEI_Perm                   = $0002;
  273.   CEI_Auth                   = $0003;
  274.   CEI_PBurst                 = $0004;
  275.   CEI_Changing               = $0005;
  276.   CEI_Needs_Maxio            = $0006;
  277.   CEI_Pburst_Reset           = $0007;
  278.   CEI_Maj_Min_Ver            = $0008;
  279.   CEI_Ref_Count              = $0009;
  280.   CEI_Dist_Time              = $000A;
  281.   CEI_Max_Io                 = $000B;
  282.   CEI_NCP_Seq                = $000C;
  283.   CEI_Conn_Num               = $000D;
  284.   CEI_Order_Num              = $000E;
  285.   CEI_Tran_Type              = $000F;
  286.   CEI_NCP_Req_Type           = $0010;
  287.   CEI_Tran_Buff              = $0011;
  288.   CEI_Bcast                  = $0012;
  289.   CEI_Lip                    = $0013;
  290.   CEI_Security               = $0014;
  291.   CEI_Res_Soft_Count         = $0015;
  292.   CEI_Locked                 = $0016;
  293.  
  294.   {*** ACCOUNTING SERVICES ***}
  295.  
  296. const
  297.  
  298.   { Comment Types }
  299.  
  300.   Connect_Time_Charge_Note = $0001;
  301.   { The fields in the record are as follows : }
  302.   {}
  303.   { Offset      Field                 Type }
  304.   {}
  305.   { 0           Connect time          longint }
  306.   { 4           Request count         longint }
  307.   { 8           Bytes read high       word }
  308.   { 10          Bytes read 2          word }
  309.   { 12          Bytes read low        word }
  310.   { 14          Bytes written high    word }
  311.   { 16          Bytes written 2       word }
  312.   { 18          Bytes written low     word }
  313.  
  314.   Disk_Storage_Charge_Note = $0002;
  315.   {The fields in the record are as follows : }
  316.   {}
  317.   { Offset      Field                 Type }
  318.   {}
  319.   { 0           Blocks owned          longint }
  320.   { 4           Number of half hours  longint }
  321.  
  322.   Login_Note               = $0003;
  323.   {The fields in the record are as follows : }
  324.   {}
  325.   { Offset      Field                 Type }
  326.   {}
  327.   { 0           Net                   longint }
  328.   { 4           Node (high)           longint }
  329.   { 8           Node (low)            longint }
  330.  
  331.   Logout_Note              = $0004;
  332.   {The fields in the record are as follows : }
  333.   {}
  334.   { Offset      Field                 Type }
  335.   {}
  336.   { 0           Net                   longint }
  337.   { 4           Node (high)           longint }
  338.   { 8           Node (low)            longint }
  339.  
  340.   Account_Locked_Note      = $0005;
  341.   {The fields in the record are as follows : }
  342.   {}
  343.   { Offset      Field                 Type }
  344.   {}
  345.   { 0           Net                   longint }
  346.   { 4           Node (high)           longint }
  347.   { 8           Node (low)            longint }
  348.  
  349.   {************************}
  350.   {*** BINDERY SERVICES ***}
  351.   {************************}
  352.  
  353. const
  354.  
  355.   {** Bindery security access byte definitions **}
  356.  
  357.   BS_AnyRead              = $0000;
  358.   { Readable by anyone }
  359.  
  360.   BS_LoggedRead           = $0001;
  361.   { Must be logged in to read }
  362.  
  363.   BS_ObjectRead           = $0002;
  364.   { Readable by the object only }
  365.  
  366.   BS_SuperRead            = $0003;
  367.   { Readable by Supervisor only }
  368.  
  369.   BS_BinderyRead          = $0004;
  370.   { Readable by Bindery only }
  371.  
  372.   BS_AnyWrite             = $0000;
  373.   { Writeable by anyone }
  374.  
  375.   BS_LoggedWrite          = $0010;
  376.   { Must be logged in to write }
  377.  
  378.   BS_ObjectWrite          = $0020;
  379.   { Writeable by the object only }
  380.  
  381.   BS_SuperWrite           = $0030;
  382.   { Writeable by Supervisor only }
  383.  
  384.   BS_BinderyWrite         = $0040;
  385.   { Writeable by Bindery only }
  386.  
  387.   {** Access rights definitions for 286-based Netware **}
  388.  
  389.   TA_None                 = $0000;
  390.   { Trustee has no rights in directory }
  391.  
  392.   TA_Read                 = $0001;
  393.   { Trustee can read from file that is open }
  394.  
  395.   TA_Write                = $0002;
  396.   { Trustee can write to a file that is open }
  397.  
  398.   TA_Open                 = $0004;
  399.   { Trustee can open an existing file }
  400.  
  401.   TA_Create               = $0008;
  402.   { Trustee can create a new file }
  403.  
  404.   TA_Delete               = $0010;
  405.   { Trustee can delete files }
  406.  
  407.   TA_Ownership            = $0020;
  408.   { Trustee can create subdirectories and modify trustee rights }
  409.  
  410.   TA_Search               = $0040;
  411.   { Trustee can view the names of non-hidden files }
  412.  
  413.   TA_Modify               = $0080;
  414.   { Trustee can modify the file attributes }
  415.  
  416.   TA_All                  = $00FF;
  417.   { Trustee has all of the above rights }
  418.  
  419.   {*** Access rights definitions for 386-based Netware ***}
  420.  
  421.   TR_None                 = $0000;
  422.   { Trustee has no rights in directory }
  423.  
  424.   TR_Read                 = $0001;
  425.   { For a directory, the trustee can open and read existing files in this
  426.     directory unless blocked by mask or trustee rights assignments.  For a
  427.     file the trustee can open and read this file }
  428.  
  429.   TR_Write                = $0002;
  430.   { For a directory, the trustee can open and write existing files in this
  431.     directory unless blocked by mask or trustee rights assignments.  For a
  432.     file the trustee can open and write this file}
  433.  
  434.   TR_Undefined            = $0004;
  435.   { UNDEFINED }
  436.  
  437.   TR_Create               = $0008;
  438.   { For a directory, the trustee can create files and subdirectories in this
  439.     directory.  For a file, the trustee can salvage this file if deleted. }
  440.  
  441.   TR_Erase                = $0010;
  442.   { For a directory, the trustee can delete this directory if the trustee has
  443.     rights to delete everything inside it.  For a file, the trustee can delete
  444.     this file. }
  445.  
  446.   TR_Access               = $0020;
  447.   { For a directory, the trustee can modify the trustee list and inherited
  448.     rights mask of this directory.  For a file, the trustee can modify the
  449.     trustee list and inherited rights mask of this file. }
  450.  
  451.   TR_File                 = $0040;
  452.   { For a directory, the trustee can see the names of files in this directory
  453.     when scanning it (unless blocked by mask or trustee rights assignments).
  454.     For a file, the trustee can see the name of this file when scanning the
  455.     directory. }
  456.  
  457.   TR_Modify               = $0080;
  458.   { For a directory, the trustee can rename this directory and change its
  459.     attributes.  For a file, the trustee can rename this file and change its
  460.     attributes. }
  461.  
  462.   TR_Normal               = $00FF;
  463.   { This attribute grants all rights except TR_Supervisor }
  464.  
  465.   TR_Supervisor           = $0100;
  466.   { For a directory, the trustee has all rights to this directory and all
  467.     subdirectories and files.  The trustee can grant supervisor rights to other
  468.     users in this directory and it subdirectories and files.  User's rights
  469.     override all inherited rights masks in subdirectoriesand files.  The trustee
  470.     can assign space limitations to subdirectories.  For a file, the trustee has
  471.     all rights to this file. }
  472.  
  473.   TR_All                  = $01FF;
  474.   { This attribute is a combination of the preceding two attributes. }
  475.  
  476.   (* Attributes of objects and properties in the bindery *)
  477.  
  478.   BF_Static               = $0000;
  479.   { Object/property is permanent }
  480.  
  481.   BF_Dynamic              = $0001;
  482.   { Object/property is temporary }
  483.  
  484.   BF_Item                 = $0000;
  485.   { An item property }
  486.  
  487.   BF_Set                  = $0002;
  488.   { A set property }
  489.  
  490.  
  491.   {** Bindery object type definitions **}
  492.  
  493.   OT_Wild                      = $FFFF;
  494.   { Wildcard }
  495.  
  496.   OT_Unknown                   = $0000;
  497.   { Unknown }
  498.  
  499.   OT_User                      = $0001;
  500.   { Object is a user }
  501.  
  502.   OT_UserGroup                 = $0002;
  503.   { Object is a group }
  504.  
  505.   OT_PrintQueue                = $0003;
  506.   { Object is a print queue }
  507.  
  508.   OT_FileServer                = $0004;
  509.   { Object is a file server }
  510.  
  511.   OT_JobServer                 = $0005;
  512.  
  513.   OT_Gateway                   = $0006;
  514.  
  515.   OT_PrintServer               = $0007;
  516.  
  517.   OT_ArchiveQueue              = $0008;
  518.  
  519.   OT_ArchiveServer             = $0009;
  520.   { Object is an archive server }
  521.  
  522.   OT_JobQueue                  = $000A;
  523.  
  524.   OT_Administration            = $000B;
  525.  
  526.   OT_NasSnaGateway             = $0021;
  527.  
  528.   OT_NACS                      = $0023;
  529.  
  530.   OT_RemoteBridgeServer        = $0024;
  531.   OT_BridgeServer              = $0026;
  532.  
  533.   OT_TCPIPGateway              = $0027;
  534.  
  535.   OT_Gateway1                  = $0029;
  536.  
  537.   OT_TimeSynchronizationServer = $002D;
  538.  
  539.   OT_ArchiveServerDynamicSap   = $002E;
  540.  
  541.   OT_AdvertisingPrintServer    = $0047;
  542.  
  543.   OT_BtrieveVAPNLMv5xx         = $004B;
  544.  
  545.   OT_SQLVAPNLM                 = $004C;
  546.  
  547.   OT_XtreeNetworkVersion       = $004D;
  548.  
  549.   OT_BtrieveVAPNLMv4xx         = $0050;
  550.  
  551.   OT_AppleTalk                 = $0053;
  552.  
  553.   OT_X25Gateway                = $0088;
  554.  
  555.   OT_WanCopy                   = $0072;
  556.  
  557.   OT_NetwareForVMS             = $007A;
  558.  
  559.   OT_NetwareAccessServer       = $0098;
  560.  
  561.   OT_PortableNetware           = $009E;
  562.  
  563.   OT_CompaqIDAStatusMonitor    = $00AC;
  564.  
  565.   OT_Netware3xRemoteConsole    = $0107;
  566.  
  567.   OT_NNSDomain                 = $0133;
  568.  
  569.   OT_NNSProfile                = $0135;
  570.  
  571.   OT_NNSQueue                  = $0137;
  572.  
  573.   {*** THIRD PARTY BINDERY TYPES ***}
  574.  
  575.   OT_PegasusMail               = $9009;
  576.  
  577. TYPE
  578.  
  579.   TAccountRestrictions    = RECORD
  580.  
  581.                               AccountExpirationDate         : TByte3Array;
  582.                               AccountDisabledFlag           : BYTE;
  583.                               PasswordExpirationDate        : TByte3Array;
  584.                               GraceLoginsRemaining          : BYTE;
  585.                               PasswordExpirationInterval    : WORD;
  586.                               GraceLoginResetValue          : BYTE;
  587.                               MinimumPasswordLength         : BYTE;
  588.                               MaximumConcurrentConnections  : WORD;
  589.                               AllowedLoginTimeBitmap        : TByte42Array;
  590.                               LastLoginDateAndTime          : TByte6Array;
  591.                               RestrictionFlags              : BYTE;
  592.                               Unused                        : BYTE;
  593.                               MaximumDiskUsageInBlocks      : LONGINT;
  594.                               BadLoginCount                 : WORD;
  595.                               NextResetTime                 : LONGINT;
  596.                               BadLoginAddress               : TByte12Array;
  597.  
  598.                            END;
  599.  
  600.   {*******************************}
  601.   {*** END OF BINDERY SERVICES ***}
  602.   {*******************************}
  603.  
  604.   {**********************************}
  605.   {*** QUEUE MAMANGEMENT SERVICES ***}
  606.   {**********************************}
  607.  
  608. CONST
  609.  
  610.   QF_Operator_Hold        = $0080;
  611.   QF_User_Hold            = $0040;
  612.   QF_Entry_Open           = $0020;
  613.   QF_Service_Restart      = $0010;
  614.   QF_Auto_Start           = $0008;
  615.   { JOB CONTROL FLAGS }
  616.  
  617.   QS_Cant_Add_Jobs        = $0001;
  618.   QS_Servers_Cant_Attach  = $0002;
  619.   QS_Cant_Service_Jobs    = $0004;
  620.   { QUEUE STATUS FLAGS }
  621.  
  622. type
  623.  
  624.   FileOfByte   = file of byte;
  625.   FileOfText   = text;
  626.  
  627.   NWPS_Client = record
  628.  
  629.                   VersionNumber     : Byte;
  630.                   TabSize           : Byte;
  631.                   NumberOfCopies    : Word;
  632.                   PrintControlFlags : Word;
  633.                   MaxLinesPerPage   : Word;
  634.                   MaxCharsPerLine   : Word;
  635.                   FormName          : TFormName;
  636.                   Reserved          : TByte9Array;
  637.                   BannerName        : TBannerUserName;
  638.                   BannerFilename    : TChar13Array;
  639.                   HeaderFilename    : TFileName;
  640.                   DirectoryPath     : TChar80Array;
  641.  
  642.                 end;
  643.  
  644. type
  645.  
  646.   JobStruct286 = RECORD
  647.  
  648.                    ClientStation        : BYTE;
  649.                    ClientTaskNumber     : BYTE;
  650.                    ClientObjectID       : OT_BinderyID;
  651.                    TargetServerObjectID : OT_BinderyID;
  652.                    TargetExecutionTime  : TByte6Array;
  653.                    JobEntryTime         : TByte6Array;
  654.                    JobNumber            : WORD;
  655.                    JobType              : WORD;
  656.                    JobPosition          : BYTE;
  657.                    JobControlFlags      : BYTE;
  658.                    JobFileName          : TChar14Array; {TFileName;}
  659.                    JobFileHandle        : TByte6Array;
  660.                    ServerStation        : BYTE;
  661.                    ServerTaskNumber     : BYTE;
  662.                    ServerObjectID       : OT_BinderyID;
  663.                    TextJobDescription   : TChar50Array;
  664.                    case BYTE of
  665.  
  666.                      1 : (ClientRecordArea : TByte152Array);
  667.                      2 : (PrintServerClient: NWPS_Client);
  668.  
  669.                  END;
  670.  
  671.   JobStructure = record
  672.  
  673.                    RecordInUse          : word;
  674.                    PreviousRecord       : longint;
  675.                    NextRecord           : longint;
  676.                    ClientStation        : longint;
  677.                    ClientTaskNumber     : longint;
  678.                    ClientObjectID       : OT_BinderyID;
  679.                    TargetServerObjectID : OT_BinderyID;
  680.                    TargetExecutionTime  : TByte6Array;
  681.                    JobEntryTime         : TByte6Array;
  682.                    JobNumber            : longint;
  683.                    JobType              : word;
  684.                    JobPosition          : word;
  685.                    JobControlFlags      : word;
  686.                    JobFileName          : TChar14Array;
  687.                    JobFileHandle        : longint;
  688.                    ServerStation        : longint;
  689.                    ServerTaskNumber     : longint;
  690.                    ServerObjectID       : OT_BinderyID;
  691.                    TextJobDescription   : TChar50Array;
  692.                    ClientRecordArea     : TByte152Array;
  693.  
  694.                  end;
  695.  
  696.   {*****************************************}
  697.   {*** END OF QUEUE MAMANGEMENT SERVICES ***}
  698.   {*****************************************}
  699.  
  700.  
  701.   {********************************}
  702.   {*** INTERNAL TPAPI CONSTANTS ***}
  703.   {********************************}
  704.  
  705. const
  706.  
  707.   NWDEFCONNHANDLE            = $0000;
  708.   { Pass to functions when wanting to execute API's on the default file server }
  709.  
  710. var
  711.  
  712.   VLMPresent                 : boolean;
  713.   VLMEntryAddress            : pointer;
  714.  
  715.   { INTERNAL POINTERS USED BY VLMS }
  716.   {$IFDEF DPMI}
  717.   RealFragList : TDualPtr; { used to allocate real mode memory }
  718.   FragmentList : ^TFragmentList;
  719.   {$ELSE}
  720.   FragmentList : TFragmentList;
  721.   {$ENDIF}
  722.  
  723.   {************************************}
  724.   {*** AFP SERVICES FOR DOS CLIENTS ***}
  725.   {************************************}
  726.  
  727. CONST
  728.  
  729.   AFP_SFI_SetAttributes   = $0001;
  730.   AFP_SFI_CreationDate    = $0002;
  731.   AFP_SFI_AccessDate      = $0004;
  732.   AFP_SFI_ModifyDateTime  = $0008;
  733.   AFP_SFI_BackupDateTime  = $0010;
  734.   AFP_SFI_FinderInfo      = $0020;
  735.   AFP_GFI_Attributes      = $0001;
  736.   AFP_GFI_ParentDirID     = $0002;
  737.   AFP_GFI_CreationDate    = $0004;
  738.   AFP_GFI_AccessDate      = $0008;
  739.   AFP_GFI_ModifyDateTime  = $0010;
  740.   AFP_GFI_BackupDateTime  = $0020;
  741.   AFP_GFI_FinderInfo      = $0040;
  742.   AFP_GFI_LongName        = $0080;
  743.   AFP_GFI_EntryID         = $0100;
  744.   AFP_GFI_DataForkLen     = $0200;
  745.   AFP_GFI_ResrcForkLen    = $0400;
  746.   AFP_GFI_NumOffSpring    = $0800;
  747.   AFP_GFI_OwnerID         = $1000;
  748.   AFP_GFI_ShortName       = $2000;
  749.  
  750. TYPE
  751.  
  752.   AFPFileInfo = RECORD
  753.  
  754.                   EntryID            : LONGINT;
  755.                   ParentID           : LONGINT;
  756.                   Attributes         : WORD;
  757.                   DataForkLength     : LONGINT;
  758.                   ResourceForkLength : LONGINT;
  759.                   NumOffSpring       : WORD;
  760.                   CreationDate       : WORD;
  761.                   AccessDate         : WORD;
  762.                   ModifyDate         : WORD;
  763.                   ModifyTime         : WORD;
  764.                   BackupDate         : WORD;
  765.                   BackupTime         : WORD;
  766.                   FinderInfo         : TByte32Array;
  767.                   LongName           : TString33;
  768.                   Pad1               : CHAR;
  769.                   OwnerID            : OT_BinderyID;
  770.                   ShortName          : TString13;
  771.                   pad2               : CHAR;
  772.                   AccessPrivileges   : WORD;
  773.  
  774.                 END;
  775.  
  776.   AFPSetInfo  = RECORD
  777.  
  778.                   Attributes         : WORD;
  779.                   CreationDate       : WORD;
  780.                   AccessDate         : WORD;
  781.                   ModifyDate         : WORD;
  782.                   ModifyTime         : WORD;
  783.                   BackupDate         : WORD;
  784.                   BackupTime         : WORD;
  785.                   FinderInfo         : TByte32Array;
  786.  
  787.                 END;
  788.  
  789.   {*******************************************}
  790.   {*** END OF AFP SERVICES FOR DOS CLIENTS ***}
  791.   {*******************************************}
  792.  
  793.   {***********************************************}
  794.   {*** COMMUNICATIONS SERVICES FOR DOS CLIENTS ***}
  795.   {***********************************************}
  796.  
  797. CONST
  798.  
  799.   Short_Lived             = $00;
  800.   Long_Lived              = $FF;
  801.   Enable_Watchdog         = $FF;
  802.   Disable_WatchDog        = $00;
  803.  
  804.   SPX_Is_Installed           = $FF;
  805.   SPX_Not_Installed          = $00;
  806.   SPX_Connection_Ok          = $00;
  807.   SPX_Connection_Started     = $00;
  808.   SPX_Connection_Established = $00;
  809.   SPX_Packet_Successful      = $00;
  810.   SPX_Socket_Not_Opened      = $FF;
  811.   SPX_Malformed_Packet       = $FD;
  812.   SPX_Packet_Overflow        = $FD;
  813.   SPX_Listen_Canceled        = $FC;
  814.   SPX_Connection_Table_Full  = $EF;
  815.   SPX_Invalid_Connection     = $EE;
  816.   SPX_No_Answer_From_Target  = $ED;
  817.   SPX_Connection_Failed      = $ED;
  818.   SPX_Connection_Terminated  = $ED;
  819.   SPX_Terminate_Poorly       = $EC;
  820.  
  821.   Periodic_ID_Packet         = $02;
  822.   Response_ID_Packet         = $04;
  823.   SAP_Socket                 = $0452;
  824.   One_Minute                 = $0438;
  825.  
  826.   MaxSockets                 = 20;
  827.  
  828. TYPE
  829.  
  830.   IPXAddress                   = RECORD
  831.  
  832.                                    Network                   : TByte4Array;
  833.                                    Node                      : TByte6Array;
  834.                                    Socket                    : WORD;
  835.  
  836.                                  END;
  837.  
  838.   IPXHeader                    = RECORD
  839.  
  840.                                    CheckSum                  : WORD;
  841.                                    HLength                   : WORD;
  842.                                    TransportControl          : BYTE;
  843.                                    PacketType                : BYTE;
  844.                                    Destination               : IPXAddress;
  845.                                    Source                    : IPXAddress;
  846.  
  847.                                  END;
  848.  
  849.   SPXHeader                    = RECORD
  850.  
  851.                                    Header                    : IPXHeader;
  852.                                    ConnectionControl         : BYTE;
  853.                                    DataStreamType            : BYTE;
  854.                                    SourceConnectionID        : WORD;
  855.                                    DestConnectionID          : WORD;
  856.                                    SequenceNumber            : WORD;
  857.                                    AcknowledgeNumber         : WORD;
  858.                                    AllocationNumber          : WORD;
  859.  
  860.                                  END;
  861.  
  862.  
  863.   ECBFragmentType              = RECORD
  864.  
  865.                                    Address : pointer;
  866.                                    Size    : WORD;
  867.  
  868.                                  END;
  869.  
  870.   ECB                          = RECORD
  871.  
  872.                                    LinkAddress               : POINTER;
  873.                                    ESRAddress                : POINTER;
  874.                                    InUseFlag                 : BYTE;
  875.                                    CompletionCode            : BYTE;
  876.                                    SocketNumber              : WORD;
  877.                                    IPXWorkSpace              : TByte4Array;
  878.                                    DriverWorkSpace           : TByte12Array;
  879.                                    ImmediateAddress          : TByte6Array;
  880.                                    FragmentCount             : WORD;
  881.                                    FragmentDescriptor        : ECBFragmentType;
  882.  
  883.                                  END;
  884.  
  885.   SAPHeader                    = RECORD
  886.  
  887.                                    CheckSum                  : WORD;
  888.                                    HLength                   : WORD;
  889.                                    TransportControl          : BYTE;
  890.                                    PacketType                : BYTE;
  891.                                    Destination               : IPXAddress;
  892.                                    Source                    : IPXAddress;
  893.                                    SAPPacketType             : WORD;
  894.                                    ServerType                : WORD;
  895.                                    ServerName                : TObjectName;
  896.                                    ServerAddress             : IPXAddress;
  897.                                    InterveningNetworks       : WORD;
  898.  
  899.                                  END;
  900.  
  901.   SAP_BUFFER                   = RECORD
  902.  
  903.                                    TheECB                    : ECB;
  904.                                    Packet                    : SAPHeader;
  905.  
  906.                                  END;
  907.  
  908.   SAP                          = RECORD
  909.  
  910.                                    Header                    : IPXHeader;
  911.                                    ResponseType              : WORD;
  912.                                    ServerType                : WORD;
  913.                                    ServerName                : TObjectName;
  914.                                    ServerAddress             : IPXAddress;
  915.                                    InterveningNetworks       : WORD;
  916.  
  917.                                  END;
  918.  
  919.   SAPQueryPacket               = RECORD
  920.  
  921.                                    CheckSum                  : WORD;
  922.                                    HLength                   : WORD;
  923.                                    TransportControl          : BYTE;
  924.                                    PacketType                : BYTE;
  925.                                    Destination               : IPXAddress;
  926.                                    Source                    : IPXAddress;
  927.                                    QueryType                 : WORD;
  928.                                    ServerType                : WORD;
  929.  
  930.                                  END;
  931.  
  932.   Connection_Info              = RECORD
  933.  
  934.                                    ConnectionState           : BYTE;
  935.                                    ConnectionFlags           : BYTE;
  936.                                    SourceConnectionID        : WORD;
  937.                                    DestinationConnectionID   : WORD;
  938.                                    SequenceNumber            : WORD;
  939.                                    AcknowledgeNumber         : WORD;
  940.                                    AllocationNumber          : WORD;
  941.                                    RemoteAcknowledgeNumber   : WORD;
  942.                                    RemoteAllocationNumber    : WORD;
  943.                                    ConnectionSocket          : WORD;
  944.                                    ImmediateAddress          : TByte6Array;
  945.                                    Destination               : IPXAddress;
  946.                                    RetransmissionCount       : WORD;
  947.                                    EstimatedRoundTripDelay   : WORD;
  948.                                    RetransmittedPackets      : WORD;
  949.                                    SuppressedPackets         : WORD;
  950.  
  951.                                  END;
  952.  
  953.   VAR
  954.  
  955.     IPXLocation    : POINTER;
  956.     ECBTable       : array [1 .. MaxSockets] of ^ECB;
  957.  
  958.  
  959.   {******************************************************}
  960.   {*** END OF COMMUNICATIONS SERVICES FOR DOS CLIENTS ***}
  961.   {******************************************************}
  962.  
  963.   {***********************************************}
  964.   {*** DIRECTORY/FILE SERVICES FOR DOS CLIENTS ***}
  965.   {***********************************************}
  966.  
  967. CONST
  968.  
  969.   NoRestrictionValue      = $40000000;
  970.   SectorSize386           = 512;
  971.   MaxNetwareSearchDrives  = 16;
  972.  
  973.   {** Drive constant definitions **}
  974.  
  975.   NoBaseDrive             = $FF;
  976.   TemporaryDrive          = $00;
  977.   PermanentDrive          = $01;
  978.   TempDrive               = $1A;
  979.   TempDrive1              = $1B;
  980.   TempDrive2              = $1C;
  981.   TempDrive3              = $1D;
  982.  
  983.   {** Drive status definitions **}
  984.  
  985.   DrivePermanent          = $01;       {byte; Permanently mapped to network}
  986.   DriveTemporary          = $02;       {byte; Temporary mapped to network}
  987.   DriveNetwork            = $03;       {byte; Mapped to network}
  988.   DriveLocal              = $80;       {byte; Local drive, if network bit set - mapped to network}
  989.   DriveAdd                = $01;
  990.   DriveInsert             = $02;
  991.   DriveDelete             = $03;
  992.  
  993.   {** Name Spaces **}
  994.  
  995.   Dos_Name_Space          = 0;
  996.   Mac_Name_Space          = 1;
  997.  
  998.  
  999.   {** File attribute definitions for 286-based Netware **}
  1000.  
  1001.   FA_Normal               = $00;       {byte; This file has no specific attributes, it is readable / writeable}
  1002.   FA_ReadOnly             = $01;       {byte; This file can be read but not written}
  1003.   FA_Hidden               = $02;       {byte; This file will not show up in a normal directory listing}
  1004.   FA_System               = $04;       {byte; This file is for use by the system}
  1005.   FA_ExecuteOnly          = $08;       {byte; This file can be loaded for execution only}
  1006.   FA_Directory            = $10;       {byte; This file is a subdirectory not a file}
  1007.   FA_NeedsArchived        = $20;       {byte; This file has been modified since the last archive}
  1008.   FA_Shareable            = $40;       {byte; More than one user has can have this file open simultaneously}
  1009.  
  1010.   {** Extended file attribute definitions for 286-based Netware **}
  1011.  
  1012.   FA_Transactional        = $10;       {byte; This file will allow support of TTS}
  1013.   FA_Indexed              = $20;       {byte; An index of all blocks in the file will be kept for faster access}
  1014.   FA_ReadAudit            = $40;       {byte; All reads from this file will be recorded in an audit file}
  1015.   FA_WriteAudit           = $80;       {byte; All writes to this file will be recorded in an audit file}
  1016.  
  1017.   {** File attribute definitions for 386-based Netware **}
  1018.  
  1019.   TF_Normal               = $00000;    {longint; Files only; This attribute defines a file without any special
  1020.                                         attributes; that is, the file has read and write rights.}
  1021.   TF_Read_Only            = $00001;    {longint; Files only; When read only is assigned, Netware automatically
  1022.                                         assigns the delete inhibit and rename inhibit attributes as well.
  1023.                                         Consequently, users cannot write to, erase or rename the file even if
  1024.                                         they have been granted the write and erase rights at directory or file
  1025.                                         level.}
  1026.   TF_Hidden               = $00002;    {longint; File and directories; This attribute hides the file from DOS DIR
  1027.                                         scans and prevents it from being deleted or copied.  However, the files and
  1028.                                         directories will appear with an NDIR scan if the user has file scan rights.}
  1029.   TF_System               = $00004;    {longint; Files and directories; This attribute hides the file or directory
  1030.                                         from DOS DIR scans.  However, the files and directories will appear with an
  1031.                                         NDIR scan if the user has file scan rights.}
  1032.   TF_Execute_Only         = $00008;    {longint; Files only; This attribute prevents files from being copied.  Only
  1033.                                         the supervisor can assign this attribute, and it should be assigned only if
  1034.                                         backup copy of the file exists.  Backup utilities will not back up the files,
  1035.                                         and some programs will not run correctly with this attribute set.}
  1036.   TF_Directory            = $00010;    {longint; The file is a directory not a file}
  1037.   TF_Needs_Archived       = $00020;    {longint; Files only; This file has been modified since the last archive.}
  1038.   TF_Execute_Confirm      = $00040;    {longint; This attribute is used internally by Novell}
  1039.   TF_Shareable            = $00080;    {longint; Files only; More than one user has can have this file open simultaneously}
  1040.   TF_Low_Search           = $00100;    {longint;}
  1041.   TF_Mid_Search           = $00200;    {longint;}
  1042.   TF_Hi_Search            = $00400;    {longint;}
  1043.   TF_Private              = $00800;    {longint; Reserved}
  1044.   TF_Transactional        = $01000;    {longint; Files only; }
  1045.   TF_Indexed              = $02000;    {longint; }
  1046.   TF_Read_Audit           = $04000;    {longint; Files only; }
  1047.   TF_Write_Audit          = $08000;    {longint; Files only; }
  1048.   TF_Purge                = $10000;    {longint; Files and directories; }
  1049.   TF_Rename_Inhibit       = $20000;    {longint; Files and directories; }
  1050.   TF_Delete_Inhibit       = $40000;    {longint; Files and directories; }
  1051.   TF_Copy_Inhibit         = $80000;    {longint; Files only; }
  1052.  
  1053.   {** Modify bits to be used with SETENTRY **}
  1054.  
  1055.   M_Modify_Name           = $0001;
  1056.   M_File_Attributes       = $0002;
  1057.   M_Create_Date           = $0004;
  1058.   M_Create_Time           = $0008;
  1059.   M_Owner_ID              = $0010;
  1060.   M_Last_Archived_Date    = $0020;
  1061.   M_Last_Archived_Time    = $0040;
  1062.   M_Last_Archived_ID      = $0080;
  1063.   M_Last_Updated_Date     = $0100;
  1064.   M_Last_Updated_Time     = $0200;
  1065.   M_Last_Updated_ID       = $0400;
  1066.   M_Last_Accessed_Date    = $0800;
  1067.   M_Inherited_Rights_Mask = $1000;
  1068.   M_Maximum_Space         = $2000;
  1069.   M_Mac_Modify_Name       = 1;
  1070.   M_Mac_Finder_Info       = 2;
  1071.   M_Mac_ProDos_Info       = 4;
  1072.  
  1073. TYPE
  1074.  
  1075.   Volume_Stats                 = RECORD
  1076.  
  1077.                                    SystemElapsedTime         : LONGINT;
  1078.                                    VolumeNumber              : BYTE;
  1079.                                    LogicalDriveNumber        : BYTE;
  1080.                                    SectorsPerBlock           : WORD;
  1081.                                    StartingBlock             : WORD;
  1082.                                    TotalBlocks               : WORD;
  1083.                                    AvailableBlocks           : WORD;
  1084.                                    TotalDirectorySlots       : WORD;
  1085.                                    AvailableDirectorySlots   : WORD;
  1086.                                    MaxDirectorySlotsUsed     : WORD;
  1087.                                    IsHashing                 : BYTE;
  1088.                                    IsCaching                 : BYTE;
  1089.                                    IsRemovable               : BYTE;
  1090.                                    IsMounted                 : BYTE;
  1091.                                    VolumeName                : TVolumeName;
  1092.  
  1093.                                  END;
  1094.  
  1095.   NWSalv_Entry                 = RECORD
  1096.  
  1097.                                    EntryID                   : LONGINT;
  1098.                                    Attributes                : LONGINT;
  1099.                                    NameSpaceType             : BYTE;
  1100.                                    Name                      : TNameSpaceName;
  1101.                                    LastArchiveDateAndTime    : LONGINT;
  1102.                                    LastArchiverID            : OT_BinderyID;
  1103.                                    ModifyDateAndTime         : LONGINT;
  1104.                                    LastModifierID            : OT_BinderyID;
  1105.                                    DataForkSize              : LONGINT;
  1106.                                    LastAccessedDate          : WORD;
  1107.                                    DeletedFileTime           : LONGINT;
  1108.                                    DeletedDateAndTime        : LONGINT;
  1109.                                    DeletorID                 : LONGINT;
  1110.  
  1111.                                  END;
  1112.  
  1113.   NWFile_Entry                 = RECORD
  1114.  
  1115.                                    Sequence                  : LONGINT;
  1116.                                    Reserved1                 : LONGINT;
  1117.                                    Attributes                : LONGINT;
  1118.                                    Reserved2                 : TByte2Array;
  1119.                                    NSType                    : BYTE;
  1120.                                    Name                      : TNameSpaceName;
  1121.                                    CreationDate              : WORD;
  1122.                                    CreationTime              : WORD;
  1123.                                    OwnerID                   : OT_BinderyID;
  1124.                                    LastArchivedDate          : WORD;
  1125.                                    LastArchivedTime          : WORD;
  1126.                                    LastArchiverID            : OT_BinderyID;
  1127.                                    ModifyDate                : WORD;
  1128.                                    ModifyTime                : WORD;
  1129.                                    lastModifierID            : OT_BinderyID;
  1130.                                    DataForkSize              : LONGINT;
  1131.                                    Reserved3                 : TByte44Array;
  1132.                                    InheritedRightsMask       : WORD;
  1133.                                    LastAccessDate            : WORD;
  1134.                                    Reserved4                 : TByte28Array;
  1135.  
  1136.                                  END;
  1137.  
  1138.   NWDir_Entry                  = RECORD
  1139.  
  1140.                                    Sequence                  : LONGINT;
  1141.                                    Reserved1                 : LONGINT;
  1142.                                    Attributes                : LONGINT;
  1143.                                    Reserved2                 : TByte2Array;
  1144.                                    NSType                    : BYTE;
  1145.                                    Name                      : TNameSpaceName;
  1146.                                    CreationDate              : WORD;
  1147.                                    CreationTime              : WORD;
  1148.                                    OwnerID                   : OT_BinderyID;
  1149.                                    LastArchivedDate          : WORD;
  1150.                                    LastArchivedTime          : WORD;
  1151.                                    LastArchiverID            : OT_BinderyID;
  1152.                                    ModifyDate                : WORD;
  1153.                                    ModifyTime                : WORD;
  1154.                                    Reserved3                 : TByte56Array;
  1155.                                    InheritedRightsMask       : WORD;
  1156.                                    Reserved4                 : TByte26Array;
  1157.  
  1158.                                  END;
  1159.  
  1160.   NWPhys_Entry                 = RECORD
  1161.  
  1162.                                    Sequence                  : LONGINT;
  1163.                                    Reserved1                 : LONGINT;
  1164.                                    Attributes                : LONGINT;
  1165.                                    Reserved2                 : TByte2Array;
  1166.                                    NSType                    : BYTE;
  1167.                                    Name                      : TNameSpaceName;
  1168.                                    CreationDate              : WORD;
  1169.                                    CreationTime              : WORD;
  1170.                                    OwnerID                   : OT_BinderyID;
  1171.                                    LastArchivedDate          : WORD;
  1172.                                    LastArchivedTime          : WORD;
  1173.                                    LastArchiverID            : OT_BinderyID;
  1174.                                    ModifyDate                : WORD;
  1175.                                    ModifyTime                : WORD;
  1176.                                    LastModifierID            : OT_BinderyID;
  1177.                                    DataForkSize              : LONGINT;
  1178.                                    Reserved3                 : TByte44Array;
  1179.                                    InheritedRightsMask       : WORD;
  1180.                                    LastAccessDate            : WORD;
  1181.                                    Reserved4                 : TByte28Array;
  1182.                                    ForkSize                  : TLongint10Array;
  1183.  
  1184.                                  END;
  1185.  
  1186.   NWMacEntry                   = RECORD
  1187.  
  1188.                                    Sequence                  : LONGINT;
  1189.                                    Reserved1                 : LONGINT;
  1190.                                    Attributes                : LONGINT;
  1191.                                    Reserved2                 : TByte2Array;
  1192.                                    NSType                    : BYTE;
  1193.                                    Name                      : TNameSpaceName;
  1194.                                    ResourceFork              : LONGINT;
  1195.                                    ResourceForkSize          : LONGINT;
  1196.                                    FinderInfo                : TByte32Array;
  1197.                                    ProDosInfo                : TByte6Array;
  1198.                                    Reserved3                 : TByte38Array;
  1199.  
  1200.                                  END;
  1201.  
  1202.   NWDir_Info                   = RECORD
  1203.  
  1204.                                    TotalBlocks               : LONGINT;
  1205.                                    FreeBlocks                : LONGINT;
  1206.                                    TotalDirEntries           : LONGINT;
  1207.                                    AvailDirEntries           : LONGINT;
  1208.                                    Flags                     : LONGINT;
  1209.                                    SectorsPerBlock           : BYTE;
  1210.                                    VolumeName                : TObjectName;
  1211.  
  1212.                                  END;
  1213.  
  1214.   NWVol_Usage                  = RECORD
  1215.  
  1216.                                    TotalBlocks               : LONGINT;
  1217.                                    FreeBlocks                : LONGINT;
  1218.                                    PurgableBlocks            : LONGINT;
  1219.                                    NotYetPurgableBlocks      : LONGINT;
  1220.                                    TotalDirEntries           : LONGINT;
  1221.                                    AvailDirEntries           : LONGINT;
  1222.                                    MaxDirEntriesUsed         : LONGINT;
  1223.                                    Flags                     : TByte4Array;
  1224.                                    BlockSize                 : WORD;
  1225.                                    IsHashing                 : BYTE;
  1226.                                    IsRemovable               : BYTE;
  1227.                                    VolName                   : TVolumeName;
  1228.  
  1229.                                  END;
  1230.  
  1231.   NWVol_UsageV3                = RECORD
  1232.  
  1233.                                    TotalBlocks               : LONGINT;
  1234.                                    FreeBlocks                : LONGINT;
  1235.                                    PurgableBlocks            : LONGINT;
  1236.                                    NotYetPurgableBlocks      : LONGINT;
  1237.                                    TotalDirEntries           : LONGINT;
  1238.                                    AvailDirEntries           : LONGINT;
  1239.                                    Flags                     : LONGINT;
  1240.                                    BlockSize                 : BYTE;
  1241.                                    VolName                   : TVolumeName;
  1242.  
  1243.                                  END;
  1244.  
  1245.   NWDir_Rest                   = RECORD
  1246.  
  1247.                                    Level                     : BYTE;
  1248.                                    MAXAVAIL                  : LONGINT;
  1249.                                    CurrentUsed               : LONGINT;
  1250.  
  1251.                                  END;
  1252.  
  1253.   {*************************************************}
  1254.   {*** END OF DIRECTORY SERVICES FOR DOS CLIENTS ***}
  1255.   {*************************************************}
  1256.  
  1257.   {********************************************************}
  1258.   {*** FILE SERVER ENVIRONMENT SERVICES FOR DOS CLIENTS ***}
  1259.   {********************************************************}
  1260.  
  1261. TYPE
  1262.  
  1263.  
  1264.   Conn_Semaphore               = RECORD
  1265.  
  1266.                                    OpenCount                 : WORD;
  1267.                                    SempahoreValue            : BYTE;
  1268.                                    TaskNumber                : BYTE;
  1269.                                    SemaphoreName             : TSemaphoreName;
  1270.  
  1271.                                  END;
  1272.  
  1273.   Conn_Task_Info               = RECORD
  1274.  
  1275.                                    LockStatus                : BYTE;
  1276.                                    WaitingTaskNumber         : BYTE;
  1277.                                    BeginAddress              : LONGINT;
  1278.                                    EndAddress                : LONGINT;
  1279.                                    VolumeNumber              : BYTE;
  1280.                                    NumberOfTasks             : BYTE;
  1281.                                    DirectoryEntry            : WORD;
  1282.                                    LockedName                : TString50;
  1283.                                    TaskNumber                : BYTE;
  1284.                                    TaskState                 : BYTE;
  1285.  
  1286.                                  END;
  1287.  
  1288.   Conn_Usage                   = RECORD
  1289.  
  1290.                                    SystemElapsedTime         : LONGINT;
  1291.                                    BytesRead                 : TByte6Array;
  1292.                                    BytesWritten              : TByte6Array;
  1293.                                    TotalRequestPackets       : LONGINT;
  1294.  
  1295.                                  END;
  1296.  
  1297.   Conn_Using_File              = RECORD
  1298.  
  1299.                                    UseCount                  : WORD;
  1300.                                    OpenCount                 : WORD;
  1301.                                    OpenForReadCount          : WORD;
  1302.                                    OpenForWriteCount         : WORD;
  1303.                                    DenyReadCount             : WORD;
  1304.                                    DenyWriteCount            : WORD;
  1305.                                    Reserved1                 : WORD;
  1306.                                    Locked                    : BYTE;
  1307.                                    Reserved2                 : BYTE;
  1308.                                    LogicalConnNumber         : WORD;
  1309.                                    TaskNumber                : BYTE;
  1310.                                    LockType                  : BYTE;
  1311.                                    AccessFlags               : BYTE;
  1312.                                    LockStatus                : BYTE;
  1313.  
  1314.                                  END;
  1315.  
  1316.   Disk_Cache_Stats             = RECORD
  1317.  
  1318.                                    SystemElapsedTime         : LONGINT;
  1319.                                    CacheBufferCount          : WORD;
  1320.                                    CacheBufferSize           : WORD;
  1321.                                    DirtyCacheBuffers         : WORD;
  1322.                                    CacheReadRequests         : LONGINT;
  1323.                                    CacheWriteRequests        : LONGINT;
  1324.                                    CacheHits                 : LONGINT;
  1325.                                    CacheMIsses               : LONGINT;
  1326.                                    PhysicalReadRequests      : LONGINT;
  1327.                                    PhysicalWriteRequests     : LONGINT;
  1328.                                    PhysicalReadErrors        : WORD;
  1329.                                    PhysicalWriteErrros       : WORD;
  1330.                                    CacheGetRequests          : LONGINT;
  1331.                                    CacheFullWriteRequests    : LONGINT;
  1332.                                    CachePartialWriteRequests : LONGINT;
  1333.                                    BackgroundDirtyWrites     : LONGINT;
  1334.                                    BackgroundAgedWrites      : LONGINT;
  1335.                                    TotalCacheWrites          : LONGINT;
  1336.                                    CacheAllocations          : LONGINT;
  1337.                                    ThrashingCount            : WORD;
  1338.                                    LRUBlockWasDirtyCount     : WORD;
  1339.                                    ReadBeyondWriteCount      : WORD;
  1340.                                    FragmentedWriteCount      : WORD;
  1341.                                    CacheHitOnUnavailCount    : WORD;
  1342.                                    CacheBlockScrappedCount   : WORD;
  1343.  
  1344.                                  END;
  1345.  
  1346.  
  1347.   Disk_Channel_Stats           = RECORD
  1348.  
  1349.                                    SystemElapsedTime         : LONGINT;
  1350.                                    ChannelState              : WORD;
  1351.                                    ChannelSyncState          : WORD;
  1352.                                    DriverType                : BYTE;
  1353.                                    DriverMajorVersion        : BYTE;
  1354.                                    DriverMinorVersion        : BYTE;
  1355.                                    DriverDescriptionVersion  : TString65;
  1356.                                    IOAddr1                   : WORD;
  1357.                                    IOAddr1Size               : WORD;
  1358.                                    IOAddr2                   : WORD;
  1359.                                    IOAddr2Size               : WORD;
  1360.                                    SharedMem1Seg             : TByte3Array;
  1361.                                    SharedMem1Ofs             : WORD;
  1362.                                    SharedMem2Seg             : TByte3Array;
  1363.                                    SharedMem2Ofs             : WORD;
  1364.                                    Interupt1Used             : BYTE;
  1365.                                    Interupt1                 : BYTE;
  1366.                                    Interupt2Used             : BYTE;
  1367.                                    Interupt2                 : BYTE;
  1368.                                    DMAChannel1Used           : BYTE;
  1369.                                    DMAChannel1               : BYTE;
  1370.                                    DMAChannel2Used           : BYTE;
  1371.                                    DMAChannel2               : BYTE;
  1372.                                    Reserved2                 : WORD;
  1373.                                    ConfigDescription         : TString80;
  1374.  
  1375.                                  END;
  1376.  
  1377.   Drive_Map_Table              = RECORD
  1378.  
  1379.                                    SystemElapsedTime         : LONGINT;
  1380.                                    SFTLevel                  : BYTE;
  1381.                                    LogicalDriveCount         : BYTE;
  1382.                                    PhysicalDriveCount        : BYTE;
  1383.                                    DiskChannelTable          : TByte5Array;
  1384.                                    PendingIOCommands         : WORD;
  1385.                                    MappingTable              : TByte32Array;
  1386.                                    DriveMirrorTable          : TByte32Array;
  1387.                                    DeadMirrorTable           : TByte32Array;
  1388.                                    RemirroredDrive           : BYTE;
  1389.                                    Reserved                  : BYTE;
  1390.                                    RemirroredBlock           : LONGINT;
  1391.                                    SFTErrorTable             : TWord60Array;
  1392.  
  1393.                                  END;
  1394.  
  1395.   File_Sys_Stats               = RECORD
  1396.  
  1397.                                    SystemElapsedTime         : LONGINT;
  1398.                                    MaxOpenFiles              : WORD;
  1399.                                    MaxFilesOpened            : WORD;
  1400.                                    CurrOpenFiles             : WORD;
  1401.                                    TotalFilesOpened          : LONGINT;
  1402.                                    TotalReadRequests         : LONGINT;
  1403.                                    TotalWriteRequests        : LONGINT;
  1404.                                    CurrChangedFATSectors     : WORD;
  1405.                                    TotalChangedFATSectors    : LONGINT;
  1406.                                    FATWriteErrors            : WORD;
  1407.                                    FatalFATWriteErrors       : WORD;
  1408.                                    FATScanErrors             : WORD;
  1409.                                    MaxIndexFilesOpened       : WORD;
  1410.                                    CurrOpenIndexedFiles      : WORD;
  1411.                                    AttachedIndexFiles        : WORD;
  1412.                                    AvailableIndexFiles       : WORD;
  1413.  
  1414.                                  END;
  1415.  
  1416.   Lan_Config                   = RECORD
  1417.  
  1418.                                    NetworkAddress            : TByte4Array;
  1419.                                    HostAddress               : TByte6Array;
  1420.                                    LANDriverInstalled        : BYTE;
  1421.                                    OptionNumber              : BYTE;
  1422.                                    ConfigurationText1        : TString80;
  1423.                                    ConfigurationText2        : TString80;
  1424.  
  1425.                                  END;
  1426.  
  1427.   Logical_Rec_Info             = RECORD
  1428.  
  1429.                                    CurrentUseCount           : WORD;
  1430.                                    ShareableLockCount        : WORD;
  1431.                                    Reserved1                 : WORD;
  1432.                                    Locked                    : BYTE;
  1433.                                    Reserved2                 : BYTE;
  1434.                                    LogicalConnectionNumber   : WORD;
  1435.                                    TaskNumber                : BYTE;
  1436.                                    LockStatus                : BYTE;
  1437.  
  1438.                                  END;
  1439.  
  1440.   Logical_Record               = RECORD
  1441.  
  1442.                                    TaskNumber                : BYTE;
  1443.                                    LockStatus                : BYTE;
  1444.                                    LogicalLockName           : TLogicalLockName;
  1445.  
  1446.                                  END;
  1447.  
  1448.   Conn_Open_Files286           = RECORD
  1449.  
  1450.                                    TaskNumber                : BYTE;
  1451.                                    LockStatus                : BYTE;
  1452.                                    AccessFlag                : BYTE;
  1453.                                    LockType                  : BYTE;
  1454.                                    VolumeNumber              : BYTE;
  1455.                                    Reserved                  : BYTE;
  1456.                                    DirectoryEntry            : WORD;
  1457.                                    FileName                  : TFileName;
  1458.  
  1459.                                  END;
  1460.  
  1461.   Conn_Open_Files              = RECORD
  1462.  
  1463.                                    TaskNumber                : word;
  1464.                                    LockType                  : byte;
  1465.                                    AccessControl             : byte;
  1466.                                    LockFlag                  : byte;
  1467.                                    VolumeNumber              : byte;
  1468.                                    ParentDirEntry            : longint;
  1469.                                    DirectoryEntry            : longint;
  1470.                                    Reserved                  : byte;
  1471.                                    DataStreamType            : byte;
  1472.                                    FileName                  : TFileName;
  1473.  
  1474.                                  end;
  1475.  
  1476.   Phys_Disk_Stats              = RECORD
  1477.  
  1478.                                    SystemElapsedTime         : LONGINT;
  1479.                                    DiskChannel               : BYTE;
  1480.                                    DiskRemovable             : BYTE;
  1481.                                    DriveType                 : BYTE;
  1482.                                    ControllerDriveNumber     : BYTE;
  1483.                                    ControllerNumber          : BYTE;
  1484.                                    ControllerType            : BYTE;
  1485.                                    DriveSize                 : LONGINT;
  1486.                                    DriveCylinders            : WORD;
  1487.                                    DriveHeads                : BYTE;
  1488.                                    SectorsPerTrack           : BYTE;
  1489.                                    IOErrorCount              : WORD;
  1490.                                    HotFixStart               : LONGINT;
  1491.                                    HotFixSize                : WORD;
  1492.                                    HotFixBlockAvailable      : WORD;
  1493.                                    HotFixDisabled            : BYTE;
  1494.  
  1495.                                  END;
  1496.  
  1497.   Phys_Rec_Lock                = RECORD
  1498.  
  1499.                                    PhysicalRecordLockCount   : BYTE;
  1500.                                    Reserved                  : BYTE;
  1501.                                    LoggedCount               : WORD;
  1502.                                    ShareLockCount            : WORD;
  1503.                                    RecordStart               : LONGINT;
  1504.                                    RecordEnd                 : LONGINT;
  1505.                                    ConnectionNumber          : WORD;
  1506.                                    TaskNumber                : BYTE;
  1507.                                    LockType                  : BYTE;
  1508.  
  1509.                                  END;
  1510.  
  1511.   Server_Lan_IO                = RECORD
  1512.  
  1513.                                    SystemElapsedTime             : LONGINT;
  1514.                                    MaxRoutingBuffersAvail        : WORD;
  1515.                                    MaxRoutingBuffersUsed         : WORD;
  1516.                                    RoutingBuffersInUse           : WORD;
  1517.                                    TotalFileServicePackets       : LONGINT;
  1518.                                    FileServicePacketsBuffered    : WORD;
  1519.                                    InvalidConnPacketCount        : WORD;
  1520.                                    BadLogicalConnCount           : WORD;
  1521.                                    PacketsRcvdDuringProcCount    : WORD;
  1522.                                    ReprocessedRequestCount       : WORD;
  1523.                                    BadSequenceNumberPacketCount  : WORD;
  1524.                                    DuplicateReplyCount           : WORD;
  1525.                                    AcknowledgementsSent          : WORD;
  1526.                                    BadRequestTypeCount           : WORD;
  1527.                                    AttachDuringProcCount         : WORD;
  1528.                                    AttachWhileAttachingCount     : WORD;
  1529.                                    ForgedDetachRequestCount      : WORD;
  1530.                                    BadConnNumberOnDetachCount    : WORD;
  1531.                                    DetachDuringProcCount         : WORD;
  1532.                                    RepliesCanceledCount          : WORD;
  1533.                                    HopCountDiscardCount          : WORD;
  1534.                                    UnknownNetDiscardCount        : WORD;
  1535.                                    NoDGroupBufferDiscardCount    : WORD;
  1536.                                    OutPacketNoBufferDiscardCount : WORD;
  1537.                                    IPXNotMyNetworkCount          : WORD;
  1538.                                    NetBiosPropagationCount       : LONGINT;
  1539.                                    TotalOtherPackets             : LONGINT;
  1540.                                    TotalRoutedPackets            : LONGINT;
  1541.  
  1542.                                  END;
  1543.  
  1544.   Server_Misc_Info             = RECORD
  1545.  
  1546.                                    SystemElapsedTime         : LONGINT;
  1547.                                    ProcessorType             : BYTE;
  1548.                                    Reserved                  : BYTE;
  1549.                                    ServiceProcessCount       : BYTE;
  1550.                                    ServerUtilizationCount    : BYTE;
  1551.                                    MaxBinderyObjectsAvail    : WORD;
  1552.                                    MaxBinderyObjectsUsed     : WORD;
  1553.                                    BinderyObjectsInUse       : WORD;
  1554.                                    ServerMemoryInK           : WORD;
  1555.                                    ServerWastedMemoryInK     : WORD;
  1556.                                    DynamicAreaCount          : WORD;
  1557.                                    DynamicSpace1             : LONGINT;
  1558.                                    MaxUsedDynamicSpace1      : LONGINT;
  1559.                                    DynamicSpaceInUse1        : LONGINT;
  1560.                                    DynamicSpace2             : LONGINT;
  1561.                                    MaxUsedDynamicSpace2      : LONGINT;
  1562.                                    DynamicSpaceInUse2        : LONGINT;
  1563.                                    DynamicSpace3             : LONGINT;
  1564.                                    MaxUsedDynamicSpace3      : LONGINT;
  1565.                                    DynamicSpaceInUse3        : LONGINT;
  1566.                                    DynamicSpace4             : LONGINT;
  1567.                                    MaxUsedDynamicSpace4      : LONGINT;
  1568.                                    DynamicSpaceInUse4        : LONGINT;
  1569.  
  1570.                                  END;
  1571.  
  1572.   File_Serv_Info               = RECORD
  1573.  
  1574.                                    ServerName                : TObjectName;
  1575.                                    NetwareVersion            : BYTE;
  1576.                                    NetwareSubVersion         : BYTE;
  1577.                                    MaxConnectionsSupported   : WORD;
  1578.                                    ConnectionsInUse          : WORD;
  1579.                                    MaxVolumesSupported       : WORD;
  1580.                                    RevisionLevel             : BYTE;
  1581.                                    SFTLevel                  : BYTE;
  1582.                                    TTSLevel                  : BYTE;
  1583.                                    PeakConnectionsUsed       : WORD;
  1584.                                    AccountingVersion         : BYTE;
  1585.                                    VAPVersion                : BYTE;
  1586.                                    QueingVersion             : BYTE;
  1587.                                    PrintServerVersion        : BYTE;
  1588.                                    VirtualConsoleVersion     : BYTE;
  1589.                                    SecurityRestrictionsLevel : BYTE;
  1590.                                    InternetBridgeSupport     : BYTE;
  1591.  
  1592.                                  END;
  1593.  
  1594.   Short_Phys_Rec_Lock          = RECORD
  1595.  
  1596.                                    TaskNumber                : BYTE;
  1597.                                    LockFlag                  : BYTE;
  1598.                                    RecordStart               : LONGINT;
  1599.                                    RecordEnd                 : LONGINT;
  1600.  
  1601.                                  END;
  1602.  
  1603.   TTS_Stats                    = RECORD
  1604.  
  1605.                                    SystemElapsedTime          : LONGINT;
  1606.                                    TTS_Supported              : BYTE;
  1607.                                    TTS_Enabled                : BYTE;
  1608.                                    TTS_VolumeNumber           : WORD;
  1609.                                    TTS_MaxOpenTransactions    : WORD;
  1610.                                    TTS_MaxTransactionsOpened  : WORD;
  1611.                                    TTS_CurrTransactionsOpened : WORD;
  1612.                                    TTS_TotalTransactions      : LONGINT;
  1613.                                    TTS_TotalWrites            : LONGINT;
  1614.                                    TTS_TotalBackouts          : LONGINT;
  1615.                                    TTS_UnfilledBackouts       : WORD;
  1616.                                    TTS_DiskBlocksInUse        : WORD;
  1617.                                    TTS_FATAllocations         : LONGINT;
  1618.                                    TTS_FileSizeChanges        : LONGINT;
  1619.                                    TTS_FilesTruncated         : LONGINT;
  1620.                                    NumberOfTransactions       : BYTE;
  1621.                                    ConnectionNumber           : BYTE;
  1622.                                    TaskNumber                 : BYTE;
  1623.  
  1624.                                  END;
  1625.  
  1626.   {***********************************************}
  1627.   {*** END OF FILE SERVER ENVIRONMENT SERVICES ***}
  1628.   {***********************************************}
  1629.  
  1630.   {**************************************}
  1631.   {*** PRINT SERVICES FOR DOS CLIENTS ***}
  1632.   {**************************************}
  1633.  
  1634. CONST
  1635.  
  1636.   { Capture settings }
  1637.   PS_Keep        = $0004;
  1638.   PS_NoFormFeed  = $0008;
  1639.   PS_Notify      = $0010;
  1640.   PS_ExpandTabs  = $0040;
  1641.   PS_PrintBanner = $0080;
  1642.  
  1643. TYPE
  1644.  
  1645.   Capture_Flags                = RECORD
  1646.  
  1647.                                    Status                    : BYTE;
  1648.                                    Flags                     : BYTE;
  1649.                                    TabSize                   : BYTE;
  1650.                                    ServerPrinter             : BYTE;
  1651.                                    NumberOfCopies            : BYTE;
  1652.                                    FormType                  : BYTE;
  1653.                                    Reserved                  : BYTE;
  1654.                                    BannerText                : TBannerUserName;
  1655.                                    Reserved1                 : BYTE;
  1656.                                    LocalLPTDevice            : BYTE;
  1657.                                    FlushCaptureTimeoutCount  : WORD;
  1658.                                    FlushCaptureOnDeviceClose : BYTE;
  1659.                                    MaxLines                  : WORD;
  1660.                                    MaxChars                  : WORD;
  1661.                                    FormName                  : TFormName;
  1662.                                    LPTCaptureFlag            : BYTE;
  1663.                                    FileCaptureFlag           : BYTE;
  1664.                                    TimingOutFlag             : BYTE;
  1665.                                    PrinterSetupBufferAddress : LONGINT;
  1666.                                    PrinterResetBufferAddress : LONGINT;
  1667.                                    ConnectionIDQueuePrintJob : BYTE;
  1668.                                    CaptureInProgress         : BYTE;
  1669.                                    PrintQueueFlag            : BYTE;
  1670.                                    PrintJobValid             : BYTE;
  1671.                                    PrintQueueID              : OT_BinderyID;
  1672.                                    PrintJobNumber            : WORD;
  1673.  
  1674.                                  END;
  1675.  
  1676.   Set_Capture_Flags            = RECORD
  1677.  
  1678.                                    Status                    : BYTE;
  1679.                                    Flags                     : BYTE;
  1680.                                    TabSize                   : BYTE;
  1681.                                    ServerPrinter             : BYTE;
  1682.                                    NumberOfCopies            : BYTE;
  1683.                                    FormType                  : BYTE;
  1684.                                    Reserved                  : BYTE;
  1685.                                    BannerText                : TBannerUserName;
  1686.                                    Reserve                   : BYTE;
  1687.                                    LocalLPTDevice            : BYTE;
  1688.                                    FlushCaptureTimeoutCount  : WORD;
  1689.                                    FlushCaptureOnDeviceClose : BYTE;
  1690.                                    MaxLines                  : WORD;
  1691.                                    MaxChars                  : WORD;
  1692.                                    FormName                  : TFormName;
  1693.                                    Pad                       : TByte21Array;
  1694.  
  1695.                                  END;
  1696.  
  1697.   {*********************************************}
  1698.   {*** END OF PRINT SERVICES FOR DOS CLIENTS ***}
  1699.   {*********************************************}
  1700.  
  1701.  
  1702.   {*********************}
  1703.   {*** MISCEALLONOUS ***}
  1704.   {*********************}
  1705.  
  1706. const
  1707.  
  1708.   MaxSlotsInShell      = 8;
  1709.  
  1710. TYPE
  1711.  
  1712.   TConnectionIDTable   = RECORD
  1713.  
  1714.                            InUseFlag            : BYTE;
  1715.                            OrderNumber          : BYTE;
  1716.                            NetworkNumber        : TByte4Array;
  1717.                            PhysicalNodeAddress  : TByte6Array;
  1718.                            SocketNumber         : WORD;
  1719.                            ReceiveTimeOut       : WORD;
  1720.                            RoutingNode          : TByte6Array;
  1721.                            PacketSequenceNumber : BYTE;
  1722.                            ConnectionNumber     : BYTE;
  1723.                            ConnectionStatus     : BYTE;
  1724.                            MaximumTimeOut       : WORD;
  1725.                            Padding              : TByte5Array;
  1726.  
  1727.                          END;
  1728.  
  1729.   TAddressValue        = RECORD
  1730.  
  1731.                            LENGTH        : BYTE;
  1732.                            NetworkNumber : TByte4Array;
  1733.                            NodeAddress   : TByte6Array;
  1734.  
  1735.                          END;
  1736.  
  1737.   TServerAddress       = RECORD
  1738.  
  1739.                            NetworkNumber : TByte4Array;
  1740.                            NodeAddress   : TByte6Array;
  1741.                            SocketNumber  : WORD;
  1742.                            AddressValue  : TString10;
  1743.  
  1744.                          END;
  1745.  
  1746.   TServerIDTable       = RECORD
  1747.  
  1748.                            STInUse       : BOOLEAN;
  1749.                            STOrderNumber : WORD;
  1750.                            STAddress     : TServerAddress;
  1751.  
  1752.                          END;
  1753.  
  1754.   PConnectionIDTableArray   = ^TConnectionIDTableArray;
  1755.   TConnectionIDTableArray   = ARRAY [1 .. MaxSlotsInShell] OF TConnectionIDTable;
  1756.   PFileServerNameTableArray = ^TFileServerNameTableArray;
  1757.   TFileServerNameTableArray = ARRAY [1 .. MaxSlotsInShell] OF TByte48Array;
  1758.  
  1759.   {$IFDEF WINDOWS}
  1760.   Registers = record
  1761.  
  1762.                 case Integer of
  1763.  
  1764.                  0 : (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word);
  1765.                  1 : (AL, AH, BL, BH, CL, CH, DL, DH: Byte);
  1766.  
  1767.   end;
  1768.   {$ENDIF}
  1769.  
  1770. CONST
  1771.  
  1772.   BlankServerIDTable : TServerIDTable =
  1773.  
  1774.                          (STInuse       : FALSE;
  1775.                           STOrderNumber : 0;
  1776.                           STAddress     : (NetworkNumber : (0, 0, 0, 0);
  1777.                                            NodeAddress   : (0, 0, 0, 0, 0, 0);
  1778.                                            SocketNumber  : 0;
  1779.                                            AddressValue  : '') );
  1780.  
  1781. VAR
  1782.  
  1783.   FileServerNameTable     : ARRAY [1 .. MaxSlotsInShell] OF TObjectName;
  1784.   ServerConnectionIDTable : ARRAY [1 .. MaxSlotsInShell] OF TServerIDTable;
  1785.   ConnectionIDTablePtr    : PConnectionIDTableArray;
  1786.   FileServerNameTablePtr  : PFileServerNameTableArray;
  1787.   DriveConnectionTablePtr : PByte32Array;
  1788.   DriveFlagTablePtr       : PByte32Array;
  1789.   DriveHandleTablePtr     : PByte32Array;
  1790.  
  1791.  
  1792.